﻿Public Class perGrupoAcessoItens
    Inherits PersistenciaPadrao.AcessoBD

#Region "Transação"

    Public Sub configurarAberturaConexao()

        If perConexao.SqlComando Is Nothing OrElse perConexao.SqlConexao Is Nothing Then
            MyBase.abrirConexao()
            perConexao.SqlComando = MyBase.retornarComandoSqlServer
            perConexao.SqlConexao = MyBase.retornarConexaoSqlServer
        Else
            MyBase.configurarTransacaoSqlServer(perConexao.SqlComando, perConexao.SqlConexao)
        End If

    End Sub

    Public Sub configurarFechamentoConexao()
        MyBase.fecharConexao()
        perConexao.SqlComando = Nothing
        perConexao.SqlConexao = Nothing
    End Sub

#End Region

#Region "Métodos"

    Public Function inserirGrupoAcessoItem(ByVal iCodGrupo As Integer,
                                           ByVal iCodMenu As Integer,
                                           ByVal bInserir As Boolean,
                                           ByVal bExcluir As Boolean,
                                           ByVal bAlterar As Boolean,
                                           ByVal bConsultar As Boolean,
                                           ByVal bAbrirFecharConexao As Boolean) As Integer

        Dim sSql As String = String.Empty

        If Not bAbrirFecharConexao Then
            Me.configurarAberturaConexao()
        End If

        sSql = " INSERT INTO " &
               "    seg_grupos_itens " &
               " ( " &
               "    codGrupo, " &
               "    codMenu, " &
               "    inserir, " &
               "    excluir, " &
               "    alterar, " &
               "    consultar " &
               " ) " &
               " VALUES " &
               " ( " &
               "    @codGrupo, " &
               "    @codMenu, " &
               "    @inserir, " &
               "    @excluir, " &
               "    @alterar, " &
               "    @consultar " &
               " ); SELECT SCOPE_IDENTITY() "

        MyBase.limparParametros()
        MyBase.inserirParametro("@codGrupo", iCodGrupo)
        MyBase.inserirParametro("@codMenu", iCodMenu)
        MyBase.inserirParametro("@inserir", bInserir)
        MyBase.inserirParametro("@excluir", bExcluir)
        MyBase.inserirParametro("@alterar", bAlterar)
        MyBase.inserirParametro("@consultar", bConsultar)

        Return MyBase.executarConsultaCampo(sSql, bAbrirFecharConexao)

    End Function

    Public Function editarGrupoAcessoItem(ByVal iCodItem As Integer,
                                          ByVal bInserir As Boolean,
                                          ByVal bExcluir As Boolean,
                                          ByVal bAlterar As Boolean,
                                          ByVal bConsultar As Boolean,
                                          ByVal bAbrirFecharConexao As Boolean) As Int32

        Dim sSql As String = String.Empty

        If Not bAbrirFecharConexao Then
            Me.configurarAberturaConexao()
        End If

        sSql = " UPDATE " &
               "   seg_grupos_itens " &
               " SET " &
               "   inserir = @inserir, " &
               "   excluir = @excluir, " &
               "   alterar = @alterar, " &
               "   consultar = @consultar " &
               " WHERE " &
               "   codItem = @codItem "

        MyBase.limparParametros()
        MyBase.inserirParametro("@inserir", bInserir)
        MyBase.inserirParametro("@excluir", bExcluir)
        MyBase.inserirParametro("@alterar", bAlterar)
        MyBase.inserirParametro("@consultar", bConsultar)
        MyBase.inserirParametro("@codItem", iCodItem)

        Return MyBase.executarAcao(sSql, bAbrirFecharConexao)

    End Function

    Public Sub excluirGrupoAcessoItem(ByVal iCodGrupoAcesso As Integer,
                                      ByVal bAbrirFecharConexao As Boolean)

        Dim sSql As String = String.Empty

        If Not bAbrirFecharConexao Then
            Me.configurarAberturaConexao()
        End If

        sSql = " DELETE FROM " &
               "   seg_grupos_itens " &
               " WHERE " &
               "   codGrupo = @codGrupo "

        MyBase.limparParametros()
        MyBase.inserirParametro("@codGrupo", iCodGrupoAcesso)

        MyBase.executarAcao(sSql, bAbrirFecharConexao)

    End Sub

#End Region

End Class
